/*
* 元组（tuple）是 TypeScript 特有的数据类型，JavaScript 没有单独区分这种类型。它表示成员类型可以自由设置的数组，即数组的各个成员的类型可以不同
* */
const s: [string, string, boolean] = ["a", "b", true];
console.log(s)


type TupleType<T> = [T, (newValue: T) => void]

const useState = <T>(initState: T): TupleType<T> => {
    let stateValue: T = initState
    let setStateValue = (newValue: T): void => {
        stateValue = newValue
    }
    return [stateValue, setStateValue]
}

const [state, setState] = useState<string>('hooks')

console.log(state.length)
